'''

有一个新房子，空的，然后需要添加家具，用面向对象的方式去完成家具的添加

房子有 户型（type）,面积（area）
家具：家具名 ，家具占地面积

房子可添加家具的方法，每添加一个家具，房屋的剩余面积就会减少，最后要添加的家具面积大于房子的面积了，就不能再添加了
'''

class House:
    def __init__(self,type,area):
        self.type = type
        self.area = area  #房子总面积
        # 剩余面积
        self.residue_area = area
        self.furniture_list = []
    def __str__(self):
        return  f'这是一个{self.type}房子，建筑面积为{self.area}平米\n 房子的剩余面积{self.residue_area},已经添加的家具有{self.furniture_list}'

    def add_furniture(self,item):
        if self.residue_area < item.area:
            print('房子没有足够空间了，不能再添加家具了')
        else:
            print(f'添加了一个{item.name},占地面积为{item.area}平米')
            #添加家具后，让房子的剩余面积减少，减去一个家具的面积
            self.residue_area -= item.area
            #将家具的名字追加到房子的家具列表中
            self.furniture_list.append(item.name)
            print(f'房子的剩余面积{self.residue_area},已经添加的家具有{self.furniture_list}')
class Furniture:
    def __init__(self,name,area):
        self.name = name
        self.area =area
    def __str__(self):
        #<__main__.Furniture object at 0x0000015A36757070>
        return  f'这是一个{self.name},占地面积是{self.area}平米'

bed = Furniture('慕斯',6)
sofa = Furniture('真皮大沙发',6)
table = Furniture('大圆餐桌',10)
chest = Furniture('衣柜',20)
small_house = House('一室一厅',40)


small_house.add_furniture(sofa)
small_house.add_furniture(bed)
small_house.add_furniture(table)
small_house.add_furniture(chest)


